package com.server.common.logistics.dsf.get;

import com.google.gson.annotations.SerializedName;
import com.server.common.logistics.dsf.DSFOrderResponse;
import com.server.common.logistics.response.LogisticsResponse;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.List;

@NoArgsConstructor
@Getter
@Setter
public class DSFGetOrderResponse {
    @SerializedName("consignment_info")
    private ConsignmentInfo consignmentInfo;
    @SerializedName("parcel_confirm_info")
    private ParcelConfirmInfo parcelConfirmInfo;

    @NoArgsConstructor
    @Getter
    @Setter
    public static class ConsignmentInfo {
        @SerializedName("4px_inbound_date")
        private Long inboundDate;
        @SerializedName("4px_outbound_date")
        private Long outboundDate;
        @SerializedName("4px_tracking_no")
        private String trackingNumber;
        @SerializedName("consignment_create_date")
        private Long consignmentCreateDate;
        @SerializedName("consignment_status")
        private String consignmentStatus;
        @SerializedName("ds_consignment_no")
        private String dsConsignmentNo;
        @SerializedName("has_check_oda")
        private String hasCheckOda;
        @SerializedName("insure_status")
        private String insureStatus;
        @SerializedName("insure_type")
        private String insureType;
        @SerializedName("is_hold_sign")
        private String isHoldSign;
        @SerializedName("logistics_channel_no")
        private String transferBillNo;
        @SerializedName("logistics_product_code")
        private String logisticsProductCode;
        @SerializedName("logistics_product_name")
        private String logisticsProductName;
        @SerializedName("oda_result_sign")
        private String odaResultSign;
        @SerializedName("ref_no")
        private String refNo;
    }

    @NoArgsConstructor
    @Getter
    @Setter
    public static class ParcelConfirmInfo {
        @SerializedName("confirm_parcel_qty")
        private String confirmParcelQty;
        @SerializedName("confirm_parcel_weight")
        private Integer confirmParcelWeight;
        @SerializedName("parcel_list_confirm_info")
        private List<ParcelListConfirmInfo> parcelListConfirmInfo;

        @NoArgsConstructor
        @Getter
        @Setter
        public static class ParcelListConfirmInfo {
            @SerializedName("confirm_battery_type")
            private String confirmBatteryType;
            @SerializedName("confirm_charge_weight")
            private Integer confirmChargeWeight;
            @SerializedName("confirm_high")
            private String confirmHigh;
            @SerializedName("confirm_include_battery")
            private String confirmIncludeBattery;
            @SerializedName("confirm_length")
            private String confirmLength;
            @SerializedName("confirm_volume_weight")
            private Integer confirmVolumeWeight;
            @SerializedName("confirm_weight")
            private String confirmWeight;
            @SerializedName("confirm_width")
            private String confirmWidth;
            @SerializedName("currency_code")
            private String currencyCode;
            @SerializedName("parcel_total_value_confirm")
            private String parcelTotalValueConfirm;
        }
    }
}
